Link Layer
데이터 링크 계층 (Link Layer)
1. 개요
데이터 링크 계층(Data Link Layer)은 OSI 7계층 모델의 2계층이자 TCP/IP 모델의 네트워크 액세스 계층(Network Access Layer)의 일부로, 물리적으로 연결된 인접한 두 네트워크 노드 간에 신뢰성 있는 데이터 전송을 보장하는 Hop-to-Hop 전송 계층이다. 물리 계층(Physical Layer)에서 전달되는 비트 스트림을 의미 있는 데이터 단위인 프레임(Frame)으로 구성하며, 물리적 매체에서 발생할 수 있는 오류를 검출하고 제어하여 상위 계층인 네트워크 계층에 정확한 데이터를 전달하는 것을 핵심 목적으로 한다.
2. 주요 기능 및 역할
데이터 링크 계층은 물리적 매체의 특성에 관계없이 상위 계층이 데이터를 안정적으로 보낼 수 있도록 다음과 같은 핵심 메커니즘을 수행한다.
| 기능 | 상세 설명 | 해결하려는 문제점 |
|---|---|---|
| 프레이밍 (Framing) | 비트 스트림을 프레임이라는 논리적 단위로 묶고, 시작과 끝을 구분하는 구분자를 삽입하는 과정 | 데이터의 경계 식별 불가 문제 해결 |
| 흐름 제어 (Flow Control) | 송신 측과 수신 측의 처리 속도 차이를 조절하여 수신 측의 버퍼 오버플로우(Buffer Overflow)를 방지하는 기법 | 수신 측의 데이터 처리 용량 초과 및 손실 방지 |
| 오류 제어 (Error Control) | 전송 중 발생한 비트 오류를 검출하고, 필요 시 재전송을 요청하여 데이터 무결성을 보장하는 기능 | 전기적 잡음 등으로 인한 데이터 변조 및 손실 해결 |
| 매체 액세스 제어 (MAC) | 공유 매체(Shared Medium) 환경에서 여러 노드가 동시에 데이터를 보낼 때 발생하는 충돌을 관리하는 규칙 | 데이터 충돌(Collision)로 인한 전송 효율 저하 방지 |
3. 물리 계층과의 상호작용
데이터 링크 계층은 물리 계층 바로 위에 위치하며, 하드웨어와 소프트웨어의 접점 역할을 수행한다.
- 데이터 변환: 데이터 링크 계층에서 생성된 프레임은 물리 계층으로 전달되어 전기적 신호, 광신호 또는 무선 전파와 같은 물리적 비트(Bit) 형태로 변환되어 전송된다.
- 매체 상태 감지: 물리 계층으로부터 현재 전송 매체가 사용 중인지(캐리어 센싱, Carrier Sensing)에 대한 상태 정보를 전달받아, 데이터 전송 시점을 결정한다.
- 물리적 주소 매핑: 네트워크 인터페이스 카드(NIC)라는 물리적 장치를 통해 고유한 하드웨어 주소(MAC 주소)를 할당받고 이를 통해 데이터를 송수신한다.
4. 하위 계층 구조 (LLC와 MAC)
IEEE 802 표준은 데이터 링크 계층의 기능을 더욱 세분화하여 두 개의 하위 계층으로 나누어 정의한다.
4.1 논리 링크 제어 (LLC, Logical Link Control)
- 역할: 상위 네트워크 계층(IP 등)과 하위 MAC 계층 사이의 인터페이스 역할을 한다.
- 기능: 서비스 액세스 포인트(SAP)를 통해 어떤 네트워크 프로토콜이 사용되는지 식별하며, 흐름 제어 및 오류 제어의 일부 기능을 수행한다.
4.2 매체 액세스 제어 (MAC, Medium Access Control)
- 역할: 물리적 매체에 직접 접근하여 데이터를 전송하는 하드웨어적인 제어를 담당한다.
- 기능: MAC 주소를 통한 주소 지정, 매체 접근 방식(CSMA/CD 등) 결정, 프레임의 동기화 및 오류 검출을 수행한다.
5. 매체 액세스 제어 (MAC) 방식
공유 매체(Shared Medium) 환경에서 데이터 충돌을 방지하기 위해 다음과 같은 알고리즘이 사용된다.
- CSMA/CD (Carrier Sense Multiple Access with Collision Detection):
- 유선 이더넷에서 사용된다. 매체가 사용 중인지 확인(Carrier Sense)하고, 비어 있으면 전송한다. 전송 중 충돌이 발생하면 즉시 중단하고 임의의 시간 후 재전송한다.
- CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance):
- 무선 LAN(Wi-Fi)에서 사용된다. 무선 환경에서는 충돌 검출이 어렵기 때문에, 전송 전 임의의 대기 시간을 갖거나 RTS/CTS(Request to Send/Clear to Send) 패킷을 교환하여 충돌을 사전에 회피한다.
- 토큰 패싱 (Token Passing):
- 토큰(Token)이라는 특별한 제어 프레임을 가진 노드만이 데이터를 전송할 수 있는 권한을 갖는 방식이다. 충돌이 전혀 발생하지 않으나 토큰 관리 오버헤드가 존재한다.
6. 주소 지정 및 프레임 구조
데이터 링크 계층은 물리적 주소인 MAC 주소(Media Access Control Address)를 사용하여 통신한다. MAC 주소는 48비트(6바이트) 길이의 고유 식별자로, NIC 제조 시 하드웨어에 각인된다.
6.1 프레임 구조
데이터 링크 계층의 전송 단위인 프레임은 일반적으로 다음과 같은 구조를 가진다.
[이더넷 프레임 비트 구조도]
+----------+----------+----------+----------+------------------+----------+
| Preamble | SFD | Dest MAC | Src MAC | Type/Length | Payload | FCS |
| (7 bytes)| (1 byte) | (6 bytes)| (6 bytes)| (2 bytes) | (46-1500)|(4B)|
+----------+----------+----------+----------+------------------+----------+
| 필드 | 명칭 | 설명 |
|---|---|---|
| Preamble | 프리앰블 | 수신 측의 동기화를 위해 전송되는 특정 비트 패턴 |
| Destination Address | 목적지 주소 | 수신자의 MAC 주소 (6바이트) |
| Source Address | 출발지 주소 | 송신자의 MAC 주소 (6바이트) |
| Type/Length | 타입/길이 | 상위 계층 프로토콜 종류(예: IPv4, IPv6) 또는 데이터 길이 |
| Payload | 페이로드 | 상위 계층에서 내려온 실제 데이터(패킷). 최소/최대 프레임 크기(MTU) 제한이 있음 |
| FCS (Frame Check Sequence) | 프레임 체크 시퀀스 | CRC(Cyclic Redundancy Check)를 이용한 오류 검출 코드 |
CRC(Cyclic Redundancy Check) 작동 원리
CRC는 다항식 나눗셈을 이용하여 데이터 전송 중 발생한 비트 오류를 검출하는 방식이다. 1. 송신 측: 데이터 비트열을 미리 약속된 생성 다항식(Generator Polynomial)으로 나눈 나머지 값(CRC 체크섬)을 계산하여 프레임 끝에 추가한다. 2. 수신 측: 수신한 전체 프레임을 동일한 생성 다항식으로 나눈다. 3. 판단: 나머지가 0이면 오류가 없는 것으로 판단하고, 0이 아니면 전송 중 비트 변조가 발생한 것으로 간주하여 프레임을 폐기한다.
7. 스위칭 기술과 브리지의 역할
데이터 링크 계층의 핵심 장비인 브리지(Bridge)와 스위치(Switch)는 네트워크 세그먼트를 연결하고 트래픽을 효율적으로 관리한다.
- 브리지 (Bridge): 두 개의 네트워크 세그먼트를 연결하여 하나의 논리적 네트워크로 통합한다. MAC 주소 테이블을 참조하여 목적지가 다른 세그먼트에 있을 때만 프레임을 전달(Forwarding)함으로써 불필요한 트래픽을 차단한다.
- 스위치 (Switch): 브리지의 발전된 형태로, 다수의 포트를 가지고 있으며 하드웨어 기반의 고속 스위칭을 수행한다.
- MAC 주소 학습(Learning): 스위치는 수신된 프레임의 출발지 MAC 주소를 확인하여 해당 주소가 어느 포트에 연결되어 있는지 학습하고, 이를 통해 MAC 주소 테이블을 동적으로 생성 및 업데이트한다.
- 충돌 도메인 분리: 각 포트별로 독립적인 충돌 도메인(Collision Domain)을 형성하여 전이중(Full-Duplex) 통신을 가능하게 한다.
[허브 vs 스위치 비교] | 구분 | 허브 (Hub) | 스위치 (Switch) | | :--- | :--- | :--- | | 동작 계층 | 물리 계층 (L1) | 데이터 링크 계층 (L2) | | 전송 방식 | 플러딩(Flooding): 모든 포트로 복제 전송 | 포워딩(Forwarding): 목적지 포트로만 전송 | | 충돌 도메인 | 모든 포트가 하나의 충돌 도메인 공유 | 포트별로 독립적인 충돌 도메인 형성 | | 통신 방식 | 반이중 (Half-Duplex) | 전이중 (Full-Duplex) | | 지능적 제어 | 없음 (단순 신호 증폭 및 전달) | MAC 주소 학습을 통한 효율적 경로 제어 |
8. 대표적인 프로토콜 및 기술
8.1 주요 프로토콜
- Ethernet (IEEE 802.3): 가장 널리 사용되는 유선 LAN 표준으로, CSMA/CD 방식과 MAC 주소 체계를 사용한다.
- Wi-Fi (IEEE 802.11): 무선 LAN 표준으로, CSMA/CA 방식을 통해 무선 매체에서의 충돌을 제어한다.
- PPP (Point-to-Point Protocol): 두 노드 간의 직접 연결(Point-to-Point)을 위한 프로토콜로, 인증 및 압축 기능을 제공한다.
8.2 ARP (Address Resolution Protocol)
ARP는 네트워크 계층의 논리적 주소(IP 주소)를 데이터 링크 계층의 물리적 주소(MAC 주소)로 변환하는 프로토콜이다.
[ARP 동작 과정 도식]
[송신자 A] [수신자 B]
| |
| --- (1) ARP Request (Broadcast) ---> |
| "IP 192.168.0.2인 분, MAC 주소 알려주세요!" |
| |
| <--- (2) ARP Reply (Unicast) -------- |
| "제가 192.168.0.2입니다. 제 MAC은 AA:BB... 입니다." |
| |
| --- (3) Data Frame (Unicast) --------> |
| (알게 된 MAC 주소를 목적지로 설정하여 전송) |
- ARP Request: 송신자가 목적지 IP 주소는 알지만 MAC 주소를 모를 때, 네트워크 전체에 브로드캐스트(Broadcast) 패킷을 전송한다.
- ARP Reply: 해당 IP를 가진 수신자가 자신의 MAC 주소를 담아 송신자에게 유니캐스트(Unicast)로 응답한다.
- Caching: 송신자는 응답받은 MAC 주소를 ARP 캐시 테이블에 저장하여 향후 동일 목적지 통신 시 재요청 없이 사용한다.
참고: 역방향 주소 변환 - RARP (Reverse ARP): MAC 주소를 통해 IP 주소를 알아내는 역방향 프로토콜이다. - NDP (Neighbor Discovery Protocol): IPv6에서는 ARP와 RARP의 기능을 통합하고 개선한 NDP를 사용하여 인접 노드의 주소를 탐색한다.
이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.